package com.uade.tp.view;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import com.uade.tp.controlador.Delivery;
import com.uade.tp.negocio.view.ProductoView;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class BajaProducto extends javax.swing.JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel jLabel1;
	private JLabel jLabel2;
	private JButton Salir;
	private JComboBox ComboProductos; 
	private JLabel jLabel3;
	private JButton Aceptar;
	private JTextField proveedor;
	private JTextField nombre;
	private JLabel Estado;
	private JTextField estado;
	private static BajaProducto instancia;

	/**
	* Auto-generated main method to display this JFrame
	*/
	/*public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				BajaProducto inst = new BajaProducto();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}*/
	
	public static BajaProducto getInstancia() {
		if (instancia == null){
			instancia = new BajaProducto();
		}
		instancia.setLocationRelativeTo(null);
		return instancia;
		
	}
	
	private BajaProducto() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("Baja de Producto");
			{
				jLabel1 = new JLabel();
				getContentPane().add(jLabel1);
				jLabel1.setText("Nombre :");
				jLabel1.setBounds(12, 82, 62, 20);
			}
			{
				jLabel2 = new JLabel();
				getContentPane().add(jLabel2);
				jLabel2.setText("Proveedor :");
				jLabel2.setBounds(12, 120, 86, 16);
			}
			{
				nombre = new JTextField();
				getContentPane().add(nombre);
				nombre.setBounds(92, 82, 142, 23);
				nombre.setEditable(false);
			}
			{
				proveedor = new JTextField();
				getContentPane().add(proveedor);
				proveedor.setBounds(90, 117, 142, 23);
				proveedor.setEditable(false);
			}
			{
				Aceptar = new JButton();
				getContentPane().add(Aceptar);
				Aceptar.setText("Aceptar");
				Aceptar.setBounds(67, 183, 81, 23);
				Aceptar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						if(!nombre.getText().equals("")) {
							Delivery.getInstancia().bajaproducto(nombre.getText());
							JOptionPane.showMessageDialog(null,"Producto eliminado con exito");
							ComboProductos.removeItemAt(ComboProductos.getSelectedIndex());
							nombre.setText("");
							proveedor.setText("");
							estado.setText("");
						} else {
							JOptionPane.showMessageDialog(null, "Debe seleccionar un producto");
						}
						
					}
				});
			}
			{
				Salir = new JButton();
				getContentPane().add(Salir);
				Salir.setText("Salir");
				Salir.setBounds(175, 183, 81, 23);
				Salir.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						instancia.setVisible(false);
					}
				});
			}
			{
				jLabel3 = new JLabel();
				getContentPane().add(jLabel3);
				jLabel3.setText("Seleccione el producto :");
				jLabel3.setBounds(12, 20, 131, 16);
			}
			{

				ComboProductos = new JComboBox<ProductoView>();
				getContentPane().add(ComboProductos);
				getContentPane().add(getEstado());
				getContentPane().add(getEstadox());
				ComboProductos.setBounds(12, 36, 291, 23);
				ComboProductos.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						//ACA CARGOS LOS DATOS DEL SELECCIONADO.
						ProductoView productoSeleccionado = (ProductoView) ComboProductos.getSelectedItem();
						
						if(productoSeleccionado != null){
							ProductoView p=Delivery.getInstancia().buscarProductoView(productoSeleccionado.getNombre());
							estado.setText(p.getEstado());
							nombre.setText(p.getNombre());
							proveedor.setText(p.getProveedor());
						}
					}
				});
				//ComboProductos.setModel(ComboProductosModel);


			}
			pack();
			this.setSize(400, 262);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
		
	}
	
	private ProductoView[] cargarProductos() {
		Vector<ProductoView> productos=Delivery.getInstancia().obtenerProductosView();
		ProductoView[] productosAdd = new ProductoView[productos.size()];
		for (int x = 0 ; x < productos.size() ; x++) {
			productosAdd[x] = productos.get(x);
		}
		
		return productosAdd;
	}
	
	private JTextField getEstado() {
		if(estado == null) {
			estado = new JTextField();
			estado.setBounds(90, 149, 142, 23);
			estado.setEditable(false);
		}
		return estado;
	}
	
	private JLabel getEstadox() {
		if(Estado == null) {
			Estado = new JLabel();
			Estado.setText("Estado:");
			Estado.setBounds(16, 152, 56, 16);
		}
		return Estado;
	}

	public boolean recargarCombo() {
		ProductoView[] productosAdd = this.cargarProductos();
		
		ComboBoxModel jComboBoxSeccionesModel = 
				new DefaultComboBoxModel(productosAdd);
		ComboProductos.setModel(jComboBoxSeccionesModel);
		
		return productosAdd.length > 0;
		
	}
}
